<?php
 defined("BASEDIR") or die();
 require_once("../application/view/Smarty/Smarty.class.php");
 
 class Application_View_ViewEngine extends Smarty
 {
	protected static $instance;
	
/**
 * Kontruktor
 *
 * Pobranie ustawień i konfiguracja Smarty, przypisanie zmiennych, które nie ulegają zmianie na wszystkich podstronach.
 *
 */
	protected function __construct()
	{
		// Konfiguracja ustawień - katalog z szablonami
		if(defined("TPL_DIR")) $this->template_dir = constant("TPL_DIR");
		else throw new Exception("Błąd konfiguracji szablonów");
		// Konfiguracja ustawień - katalog ze skompilowanymi szablonami
		if(defined("TPL_CPL")) $this->compile_dir = constant("TPL_CPL");
		else throw new Exception("Błąd konfiguracji szablonów");
		// Konfiguracja ustawień - katalog cache
		if(defined("TPL_CACHE")) $this->cache_dir = false;
		if(defined("TPL_DEBUG")) $this->debugging = constant("TPL_DEBUG");
		if(defined("TPL_CPLCHK")) $this->compile_check = constant("TPL_CPLCHK");
		
		$this->assign("notify", 0);
		$this->assign("time", (time()*1000));
		$this->assign("ctime", date("H:i:s"));
		$this->assign("title", constant("TITLE"));
		$this->assign_by_ref("appCore", $this);
	}
/**
 * Pobranie instancji obiektu
 *
 * Metoda pobiera lub tworzy i zwraca instancję obiektu
 *
 */
	public static function getInstance()
	{
		if(!self::$instance instanceof self)
			self::$instance = new self;
		return self::$instance;
	}
/**
 * Wyświetlenie strony
 *
 * Funkcja wyświetla przygotowaną stronę wraz z odpowiednimi zmiennymi, które zostały przypisane
 */
	public function render()
	{
		$this->display("index.tpl");
	}
	public function renderadmin()
	{
		$this->display("adminpanel.tpl");
	}
	
/**
 * Przygotowanie URL
 *
 * Funkcja przekształca otrzymalny adres url w zależności od konfiguracji (włączony lub wyłączony mod_rewrite)
 *
 * @param string $url Adres który ma zostać przekształcony
 * @return string Adres po przekształceniu
 * @example prepareUrl("index.php?pid=main");
 */	
	protected function prepareUrl($url)
	{
		$index = array("index.php?".constant("GETVAR")."=", "index/", "?".constant("GETVAR")."=");
		if(defined("REWRITE")) $url = str_replace($index, "", $url);
		if(defined("SEPARATOR")) $url = str_replace("/", constant("SEPARATOR"), $url);
		if(defined("BASEDIR")) return constant("BASEDIR").$url;
		else return $url;
	}
 }
?>